Method and Apparatus for Automatically Conducting Hardware Inventories of Computers in a Network

ABSTRACT

A method, apparatus, and computer instructions for conducting an inventory of a data processing system. When a basic input output system (BIOS) is launched during a boot process for the data processing system, the basic input output system creates a hardware report of the data processing system. This report is sent to a remote data processing system on the network.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention related generally to an improved data processingsystem, and in particular relates to a method and apparatus forconducting an inventory of a data processing system. Still moreparticularly, the present invention provides a method, apparatus, andcomputer instructions for conducting an inventory of a data processingsystem and sending the inventory to a remote data processing system.

2. Description of Related Art

A number of different client data processing systems and host dataprocessing systems may be located on a network data processing system.Management of all the different data processing systems on a network canbe time consuming and complex. Upgrades to software and hardware requireknowledge of the software and hardware that is located on the differentdata processing systems in a network. This information may be gatheredin different ways. One process is for administrators to physically go toeach data processing system and perform an inventory. Another mechanismprovides for an inventory to be automatically initiated on each dataprocessing system with those results being returned to one or morecollection points. IBM Tivoli Configuration Manager, available fromInternational Business Machines Corporation, is an example of amanagement tool that allows for deployment of software across a network.This tool and other similar tools include a process that is initiated bythe operating system to automatically collect software and hardwareinformation about a data processing system and send that information toone or more collection points, also referred to as listener servers.This information is used in the deployment and management of software onthe network.

One problem associated with this type of process is that a user may turnoff such a feature. Also, in more and more data processing systems,multiple operating systems may be present and run at different times.Unless the inventory process is set up for each operating system, theinventory of the data processing system may not occur as desired in theinstance when an operating system is started in which the inventoryprocess is not set up for that operating system. Therefore, it would beadvantageous to have an improved operating-system independent method,apparatus, and computer instructions for conducting an inventory on adata processing system.

SUMMARY OF THE INVENTION

The present invention provides a method, apparatus, and computerinstructions for conducting an inventory of a data processing system.When a basic input output system (BIOS) is launched during a bootprocess for the data processing system, the basic input output systemcreates a hardware report of the data processing system. This report issent to a remote data processing system on the network.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is a pictorial representation of a network of data processingsystems in which the present invention may be implemented;

FIG. 2 is a block diagram of a data processing system that may beimplemented as a server in accordance with a preferred embodiment of thepresent invention;

FIG. 3 is a block diagram illustrating a data processing system in whichthe present invention may be implemented;

FIG. 4 is a block diagram of components used to automatically obtain andtransmit an inventory in accordance with a preferred embodiment of thepresent invention;

FIG. 5 is a flowchart of a process for generating a hardware reportduring booting of a data processing system in accordance with apreferred embodiment of the present invention;

FIG. 6 is a flowchart of a process for setting configuration options forreporting hardware inventories in accordance with a preferred embodimentof the present invention; and

FIG. 7 is a flowchart of a process for receiving hardware reports inaccordance with a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a network of data processing systems in which thepresent invention may be implemented. Network data processing system 100is a network of computers in which the present invention may beimplemented. Network data processing system 100 contains a network 102,which is the medium used to provide communications links between variousdevices and computers connected together within network data processingsystem 100. Network 102 may include connections, such as wire, wirelesscommunication links, or fiber optic cables.

In the depicted example, server 104 and server 106 are connected tonetwork 102. In addition, clients 108, 110, and 112 are connected tonetwork 102. These clients 108, 110, and 112 may be, for example,personal computers or network computers, In the depicted example, server104 and server 106 provide data, such as boot files, operating systemimages, and applications to clients 108-112. Clients 108, 110, and 112are clients to these servers. Further, clients 108, 110, and 112 may bemanaged by servers 104 and 106. These servers may serve as collectionpoints for configuration information from clients 108, 110, and 112.These types of servers also are referred to as listener servers. Inthese examples, during booting, clients 108, 110, and 112 generatereports of hardware components and send those report to servers 104 and106. Booting of a data processing system causes the data processingsystem to start executing instructions. Most data processing systeminclude these instruction, also called BIOS's read only memory (ROM) ora flash memory. These instructions automatically execute on startup or“booting” of the data processing system.

Network data processing system 100 may include additional servers,clients, and other devices not shown. In the depicted example, networkdata processing system 100 is the Internet with network 102 representinga worldwide collection of networks and gateways that use theTransmission Control Protocol/Internet Protocol (TCP/IP) suite ofprotocols to communicate with one another. At the heart of the Internetis a backbone of high-speed data communication lines between major nodesor host computers, consisting of thousands of commercial, government,educational and other computer systems that route data and messages. Ofcourse, network data processing system 100 also may be implemented as anumber of different types of networks, such as for example, an intranet,a local area network (LAN), or a wide area network (WAN). FIG. 1 isintended as an example, and not as an architectural limitation for thepresent invention.

Referring to FIG. 2, a block diagram of a data processing system thatmay be implemented as a server, such as server 104 in FIG. 1, isdepicted in accordance with a preferred embodiment of the presentinvention. In these examples, data processing system 200 may beimplemented as a listener server to collect and receive inventories fromvarious clients on a network data processing system.

Data processing system 200 may be a symmetric multiprocessor (SMP)system including a plurality of processors 202 and 204 connected tosystem bus 206. Alternatively, a single processor system may beemployed. Also connected to system bus 206 is memory controller/cache208, which provides an interface to local memory 209. I/O bus bridge 210is connected to system bus 206 and provides an interface to I/O bus 212.Memory controller/cache 208 and I/O bus bridge 210 may be integrated asdepicted.

Peripheral component interconnect (PCI) bus bridge 214 connected to I/Obus 212 provides an interface to PCI local bus 216. A number of modemsmay be connected to PCI local bus 216. Typical PCI bus implementationswill support four PCI expansion slots or add-in connectors.Communications links to clients 108-112 in FIG. 1 may be providedthrough modem 218 and network adapter 220 connected to PCI local bus 216through add-in boards.

Additional PCI bus bridges 222 and 224 provide interfaces for additionalPCI local buses 226 and 228, from which additional modems or networkadapters may be supported. In this manner, data processing system 200allows connections to multiple network computers. A memory-mappedgraphics adapter 230, hard disk 232, and network adapter 234 may also beconnected to I/O bus 212 as depicted, either directly or indirectly.

Those of ordinary skill in the art will appreciate that the hardwaredepicted in FIG. 2 may vary. For example, other peripheral devices, suchas optical disk drives and the like, also may be used in addition to orin place of the hardware depicted. The depicted example is not meant toimply architectural limitations with respect to the present invention.For example, in some systems, Ethernet adapters are integrated into themotherboards.

The data processing system depicted in FIG. 2 may be, for example, anIBM eServer pSeries system, a product of International Business MachinesCorporation in Armonk, N.Y., running the Advanced Interactive Executive(AIX) operating system or LINUX operating system. With reference now toFIG. 3, a block diagram illustrating a data processing system isdepicted in which the present invention may be implemented. Dataprocessing system 300 is an example of a client computer. Dataprocessing system 300 employs a peripheral component interconnect (PCI)local bus architecture. Although the depicted example employs a PCI bus,other bus architectures such as Accelerated Graphics Port (AGP) andIndustry Standard Architecture (ISA) may be used. Processor 302 and mainmemory 304 are connected to PCI local bus 306 through PCI bridge 308.PCI bridge 308 also may include an integrated memory controller andcache memory for processor 302. Additional connections to PCI local bus306 may be made through direct component interconnection or throughadd-in boards. In the depicted example, local area network (LAN) adapter310, SCSI host bus adapter 312, and expansion bus interface 314 areconnected to PCI local bus 306 by direct component connection.

Basic input/output system (BIOS) unit 316 also is connected to PCI localbus 306. BIOS unit 316 is a nonvolatile memory, such as a flash memoryin these examples, in which code or instructions for starting dataprocessing system 300 are located. The BIOS for data processing system300 functions to ensure all the other hardware components, such aschips, hard drives, ports, and processor function together. BIOSsoftware in BIOS unit 316 has a number of different roles, but the mostimportant role of the BIOS is to load the operating system. When dataprocessing system 300 is turned on and processor 302 tries to executeits first instruction, processor 302 has to obtain that instruction fromsomewhere. Processor 302 is unable to obtain the first instruction fromthe operating system because the operating system is located on astorage device, such as hard disk 326, and the BIOS provides processor302 with instructions to tell where the operating system is located.

Further, the BIOS also includes other common tasks, such as for example,a power-on self-test (POST) for all of the different hardware componentsin the system to make sure the components are working properly;activating other BIOS chips on different cards installed in the dataprocessing system, such as those on a SCSI adapter and graphics cards;providing a set of low-level routines that the operating system uses tointerface to different hardware devices, such as for example, thekeyboard, display, serial ports, and parallel ports; and managing acollection of settings for components, such as hard disks and a systemclock. In these examples, the BIOS in BIOS unit 316 also includes aninventory process for obtaining a hardware inventory of data processingsystem 300 during start up and sending the inventory to one or morecollection points.

Graphics adapter 318 and audio/video adapter 319 are connected to PCIlocal bus 306 by add-in boards inserted into expansion slots. Expansionbus interface 314 provides a connection for a keyboard and mouse adapter320, modem 322, and additional memory 324. Small computer systeminterface (SCSI) host bus adapter 312 provides a connection for harddisk drive 326, tape drive 328, and CD-ROM drive 330. Typical PCI localbus implementations will support three or four PCI expansion slots oradd-in connectors.

An operating system runs on processor 302 and is used to coordinate andprovide control of various components within data processing system 300in FIG. 3. The operating system may be a commercially availableoperating system, such as Windows XP, which is available from MicrosoftCorporation. Instructions for the operating system, and applications orprograms are located on storage devices, such as hard disk drive 326,and may be loaded into main memory 304 for execution by processor 302.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 3 may vary depending on the implementation. Other internal hardwareor peripheral devices, such as flash read-only memory (ROM), equivalentnonvolatile memory, or optical disk drives and the like, may be used inaddition to or in place of the hardware depicted in FIG. 3. Also, theprocesses of the present invention may be applied to a multiprocessordata processing system.

The depicted example in FIG. 3 and above-described examples are notmeant to imply architectural limitations. For example, data processingsystem 300 also may be a notebook computer or hand held computer inaddition to taking the form of a PDA. Data processing system 300 alsomay be a kiosk or a Web appliance. The present invention provides animproved method, apparatus, and computer instructions for conducting aninventory on a data processing system. The mechanism of the presentinvention allows for an inventory of hardware components on a dataprocessing system to be automatically taken and sent to a collectionpoint each time the data processing system is started or booted.

More specifically, the mechanism of the data processing system isimplemented in the software or code that is used to first start a dataprocessing system. In these examples, that code is the BIOS. Theresulting process is an inventory process that is independent of theoperating system that is eventually run on the data processing system.When the BIOS is launched or executed during the booting of a dataprocessing system, a hardware inventory of components in the dataprocessing system is obtained. This inventory is placed into a reportand sent to one or more collection points on the network, which arelistener servers in these examples. This information is then used in themanagement of the network.

Turning next to FIG. 4, a block diagram of components used toautomatically obtain and transmit an inventory is depicted in accordancewith a preferred embodiment of the present invention. Client 400includes BIOS 402, which may be located in a flash memory, such as BIOSunit 316 in FIG. 3. When client 400 is booted, BIOS 402 executes andobtains an inventory of hardware 404 in client 400. Options or settingsfor the type of inventory report, the collection point or points towhich the report is sent, whether the report is sent, as well as otheroptions with respect to the inventory of hardware 404 are stored insetting 406. In the depicted illustrations, setting 406 is onlyaccessible with an appropriate password. This feature is included toprevent users from altering configuration settings, such as whether tosend a report, in setting 406.

Extensible markup language (XML) hardware report 408 is sent prior to auser being able to change or alter configuration settings in setting406. As a result, if the user selects a different collection point orlistener server, another report is sent after that setting has beenchanged to the new collection point.

For example, setting 406 may be used to set the report type asextensible mark up language for XML hardware report 408. Other formatsinclude, for example, hypertext markup language, America Standard Codefor Information Interchange (ASCII) text, and simple network managementprotocol (SNMP).

In these examples, XML hardware report 408 also includes otherinformation, such identifying information about client 400. A host namefor client 400, an IP address, a media access control (MAC) address, amachine type, and serial number of the machine are examples of someidentifying information that may be sent in XML hardware report 408along with the hardware inventory. Any information useful in managingclients that is accessible to BIOS 402 while booting may be included.

XML hardware report 408 is sent to a default listener server, listenerserver 410 in these examples. Default listener server 410 is designatedin setting 406 as the collection point in these examples, as well asother options. Of course, more than one listener server may bedesignated in setting 406. Alternatively if security is not of a highconcern, the report may be broadcast over the network for any listenerserver to receive. Such an option also is stored in setting 406. Otheroptions include, for example, the level of detail in the hardware reportand identifying information to be included in the hardware report.

As illustrated, XML hardware report 408 is received by asset manager 412in listener server 410. Information from XML hardware report 408 may beanalyzed and stored in hardware database 414. Asset manager 412 is aprogram or suite of programs that are used to manage assets on anetwork. Asset management of clients may include, for example,maintaining license compliance on upgrading software and installing newsoftware. Asset manager 412 may be implemented using IBM TivoliConfiguration Manager, which is available from International BusinessMachines Corporation.

In this manner, hardware inventory reports may be generated on a regularbasis, such as each time a machine is booted or rebooted. The reportingoccurs without user intervention or interference with the passwordauthentication feature for turning reporting on and off in the BIOSsettings. Further, this type of reporting is operating systemindependent. This means it avoids having to setup a reporting programfor each operating system that may be placed on and used in a client.

Turning next to FIG. 5 a flowchart of a process for generating ahardware report during booting of a data processing system is depictedin accordance with a preferred embodiment of the present invention. Theprocess illustrated in FIG. 5, may be implemented in a code that isexecuted when a computer is started or booted, prior to control beingpassed to an operating system, such as BIOS 402 in FIG. 4.

The process begins by determining whether hardware reporting has beenenabled (step 500). After the hardware report has been generated, adetermination is made as to whether the data processing system hasnetwork capacity (step 502).

If the data processing system is able to communicate over the network, adetermination is made as to whether a default listener has been selected(step 504). If a default listener server has not been selected, anetwork message is broadcast, requesting listener servers to announcethemselves (step 506). Responses are received from listener servers onthe network (step 508). The responses are compiled into a list (step510), and the list is presented to the user (step 512). The list ispresented through a user interface to allow the user to select a defaultlistener server.

User input selecting a default listener server is received (step 514).The selection of the default listener server is saved (step 516) and areport is sent to the default listener server (step 518). This hardwarereport may take various forms depending on the implementation. In theseexamples, an XML report sent using hypertext transfer protocol (HTTP) isemployed.

Thereafter, a determination is made as to whether an acknowledgement hasbeen received from the default listener server (step 520). Step 520 isemployed to ensure that the report has been received by the intendedcollection point. If an acknowledgment is received, the processterminates. Otherwise, the process returns to step 506 as describedabove to select another default listener server. Depending on theimplementation, the process may just terminate instead of selectinganother default listener server.

With reference again to step 504, if a default listener server has beenselected, the process proceeds directly to step 518 to send the reportto the default listener server. Turning back to step 502, if the dataprocessing system does not have a network capacity the processterminates.

With reference next to FIG. 6, a flowchart of a process for settingconfiguration options for reporting hardware inventories is depicted inaccordance with a preferred embodiment of the present invention. Theflowchart illustrated in FIG. 6 may be implemented in BIOS, such as BIOS402 in FIG. 4 to set settings, such as setting 406 in FIG. 4.

The process begins by receiving a user input to change hardwarereporting configuration (step 600). This user input is received on auser interface which is presented during booting. Specifically, when adata processing system is booting, the user may enter some preset key orkeys to launch the user interface. This user interface allows variouschanges, such as changing hardware reporting configuration, changingpower settings, changing a boot order for storage devices, and settingsecurity features. In response to receiving this user input, a promptfor a password is made (step 602). A user input is received containing apassword (step 604).

A determination is made as to whether the entered password is correct(step 606). If the password is incorrect, the process terminates. Inthis instance, the system continues to boot and load the operatingsystem. Otherwise, configuration options are presented on the userinterface (step 608). It user input is received selecting aconfiguration option (step 610).

Next, a determination is made as to whether the reporting feature hasbeen toggled or changed (step 612). In this example, this option allowsthe reporting feature to be turned on or off. If this feature has beenselected, the reporting feature is switched on or off depending on theprior setting (step 614) with the process then returning to step 610 asdescribed above. If the reporting feature was previously turned on, thefeature is now turned off and vice versa.

In step 612, if the selected configuration option is not to toggle thereporting feature, a determination is made as to whether theconfiguration option selected is to select a report format (step 616).If the option is to select the report format, then a process isinitiated to receive a user selection of the report format (step 618)with the process then returning to step 610. Through this process,different report formats may be selected. For example, the report formatmay be XML, HTML, ASCII text, common interface management (CIM), orSNMP. Additionally, some combination of the different reporting formatsmay be used to provide multiple formats.

With reference again to step 616, if the configuration option selectedis not the report format option, a determination is made as to whetherthe option selected is for a report mode option (step 620). If thereport mode option is selected, a process to select a report mode isinitiated (step 622). In step 622, the user may select different modesfor sending hardware reports. In these examples, a single defaultlistener is selected to receive reports. Through this configurationprocess a different listener server may be selected. Alternatively, twoor more listener servers may be designated as collection points toreceive reports. If security is not a high priority, step 622 may beemployed to select a broadcast mode in which any listener server mayreceive the hardware report.

With reference again to 620, if the configuration option selected is notthe report mode option, a determination is made as to whether the userinput is to end configuration changes (step 624). If the user input isnot to end configuration changes, the process returns to step 604.Otherwise, a determination is made as to whether the changes should besaved (step 626). If the changes are to be saved, these changes aresaved in a non-volatile memory (step 628) with the process terminatingthereafter. Otherwise, the process terminates without saving thechanges.

The configuration options illustrated in FIG. 6 are presented forpurposes of describing an example of how a configuration process may beimplemented. The different options are not meant as a number or type ofoptions that may be actually provided. For example, a configurationoption to select the amount of detail in a hardware report may beincluded in addition to or in place of those options illustrated in FIG.6.

Turning now to FIG. 7, a flowchart of a process for receiving hardwarereports is depicted in accordance with a preferred embodiment of thepresent invention. The process illustrated in FIG. 7 may be implementedin an asset management program, such as asset manager 412 in FIG. 4.

The process begins by receiving a hardware report from a client (step700). The report is analyzed to identify changes in the hardwareconfiguration of the client (step 702). This analysis may be made bycomparing the hardware configuration identified in the report with thehardware previously identified and stored in a database, such ashardware database 414 in FIG. 4. This report and the analysis are thenstored (step 704). In step 704, if the report is for a new system thathas not been previously processed by the listener, a new record iscreated for the new system.

Next, a determination is made as to whether a change is present in thehardware in the client from which the report is received (step 706). Ifa change is present, an administrator is notified (step 708) with theprocess terminating thereafter. Otherwise, the process terminateswithout notifying the administrator. A notification may be made in manydifferent ways. For example, the notification may be made through anemail message, an text message to a mobile unit or a pager.

Thus, the present invention provides a method, apparatus, and computerinstructions for tracking hardware on data processing systems throughprocesses implemented in a BIOS. This mechanism allows for reporting tobe set up without regard to the operating system being used. Thismechanism allows for regular reporting to occur each time a dataprocessing system is booted.

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media, suchas a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, andtransmission-type media, such as digital and analog communicationslinks, wired or wireless communications links using transmission forms,such as, for example, radio frequency and light wave transmissions. Thecomputer readable media may take the form of coded formats that aredecoded for actual use in a particular data processing system.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Inthese examples, the clients are clients to servers. Clients also may bea client of a management domain, such that a client is any machine thatreports its inventory to a server machine or server process. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

1.-14. (canceled)
 15. A data processing system for conducting aninventory of the data processing system, the data processing systemcomprising: launching means for launching a basic input output systemcomprising an inventory process during a boot process for the dataprocessing system, wherein the basic input output system initiates theinventory process wherein the inventory process collects a hardwareinventory of components in the data processing system, wherein the datarecessing system is one in a plurality of data processing systems in anetwork; identifying means for identifying hardware components in thedata processing system to form an inventory prior to the launching of anoperating system, responsive to launching the basic input output systemduring the boot process of the data processing system; sending means forsending a report comprising the inventory to a listener server on thenetwork using a communications interface, prior to launching theoperating system, wherein a format type of the report is type in a groupconsisting of extensible mark up language, hypertext markup language,text in a flat file, and simple network management protocol, and whereinthe listener server collects and receives the report from each dataprocessing system on the network, and wherein the listener server is adefault listener server. 16.-18. (canceled)
 19. The data processingsystem of claim 15 further comprising: broadcasting means forbroadcasting a network message to a plurality of listener servers;requesting means for requesting each listener server on the network toannounce themselves; compiling means for compiling responses from theeach listener server to form a list; presenting means for presenting thelist of the each listener servers, wherein user input is receivedcontaining a selection of a select a listener server from the pluralityof listener servers, for reporting hardware changes in the dataprocessing system; and saving means for saving the selection as adefault listener server.
 20. (canceled)
 21. The data processing systemof claim 19, wherein the broadcasting means, compiling means, presentingmeans, and saving means are initiated in response to an absence of adefault listener server being present on the network.
 22. The dataprocessing system of claim 15, wherein the report is used to identifychanges to the data processing system.
 23. The data processing system ofclaim 15, wherein the listener server runs asset management software.24. The data processing system of claim 15, wherein the sending means isa first sending means, and further comprising: waiting means for waitingfor an acknowledgement of the report from the default listener server;selecting means, responsive to an absence of the acknowledgment of thereport, by the default server, for selecting a second remote dataprocessing system; and second sending means for sending the report tothe second default listener server.
 25. A data processing system in adata processing system for identifying hardware in the data processingsystem, the data processing system comprising: identifying meansresponsive to booting of the computer, for identifying the hardware inthe data processing system to form an inventory prior to passing controlto an operating system; creating means for creating report containingthe inventory of the hardware prior to passing control to the operatingsystem; and sending means for sending the report to a default listenerserver on the network using a communications interface prior to passingcontrol to the operating system. 26.-28. (canceled)
 29. A computerprogram product in a computer readable medium for conducting aninventory of the computer program product comprising: instructions forlaunching a basic input output system comprising an inventory processduring a boot process for the data processing system, wherein the basicinput output system initiates the inventory process, wherein theinventory process collects a hardware inventory of components in thedata processing system, wherein the data processing system is one in aplurality of data processing systems in a network; instructions foridentifying hardware components in the data processing system to form aninventory prior to the launching of an operating system responsive tolaunching the basic input output system during the boot process of thedata processing system; and instructions for sending a report comprisingthe inventory to a listener server on the network using a communicationsinterface, prior to launching the operating system, wherein a formattype of the report is type in a group consisting of extensible mark uplanguage, hypertext markup language, text in a flat file, and simplenetwork management protocol, and wherein the listener server collectsand receives the report from each data processing system on the network,and wherein the listener server is a default listener server. 30.-32.(canceled)
 33. The computer program product of claim 29 furthercomprising: instructions for broadcasting a network message to aplurality of listener servers; instructions for requesting each listenerserver on the network to announce themselves; instructions for compilingresponses from the each listener server to form a list; instructions forpresenting the list of the each listener servers, wherein user input isreceived containing a selection of a select listener server from theplurality of listener servers, for reporting hardware changes in thedata processing system; and instructions for saving the selection as adefault listener server.
 34. (canceled)
 35. The computer program productof claim 33, wherein the instructions for broadcasting instructions,compiling instructions, presenting instructions, and saving areinitiated in response to an absence of a default listener server beingpresent on the network.
 36. The computer program product of claim 29,wherein the report is used to identify changes to the data processingsystem.
 37. The computer program product of claim 29, wherein thelistener server runs asset management software.
 38. The computer programproduct of claim 29 further comprising: instructions for waiting for anacknowledgement of the report from the default listener server;instructions, responsive an absence of the acknowledgment of the report,by the default server, for selecting a second default listener server;and instructions for sending the report to the second default listenerserver. 39.-42. (canceled)
 43. A data processing system comprising: abus system; a memory connected to the bus system, wherein the memoryincludes a set of instructions; and a processing unit connected to thebus system, wherein the processing unit executes the set of instructionsto launch a basic input output system comprising an inventory processduring a boot process for the data processing system, wherein the basicinput output system initiates the inventory process, wherein theinventory process collects a hardware inventory of components in thedata processing system, wherein the data processing system is one in aplurality of data processing systems in a network identifies hardwarecomponents in the data processing system to form an inventory prior tothe launching of an operating system responsive to launching the basicinput output system during the boot process of the data processingsystem; and sends a report comprising the inventory to a listener serveron the network using a communications interface, prior to launching theoperating system, wherein a format type of the report is type in a groupconsisting of extensible mark up language, hypertext markup language,text in a flat file, and simple network management protocol, and whereinthe listener server collects and receives the report from each dataprocessing system on the network, and wherein the listener server is adefault listener server.